home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c30.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  60KB  |  2,640 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:COUNTER.append_in*/
  10. /*No:COUNTER.reset*/
  11.  
  12.  
  13. void r204increment(T204* C){
  14. C->_value=((C)->_value/*0*/)+(1);
  15. }
  16. /*No:COUNTER.value*/
  17. /*No:ONCE_PROCEDURE.rescue_compound*/
  18. /*No:ONCE_PROCEDURE.use_current_state*/
  19.  
  20.  
  21. T0* r305run_require(T0* a1){
  22. T0* R=NULL;
  23. T0* _ct=NULL;
  24. T0* _ar=NULL;
  25. T0* _hc=NULL;
  26. T0* _er=NULL;
  27. T0* _r=NULL;
  28. T2 _i=0;
  29. r358clear((T358*)(oBC93require_collector));
  30. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  31. r63collect_for((T63*)(X54base_class(_ct)),1,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  32. /*[IF*/
  33. if(!(r358empty((T358*)(oBC93require_collector)))){
  34. _i=1;
  35. while (!((_i)>(((T358*)(oBC93require_collector))->_upper/*8*/))) {
  36. _er=r358item((T358*)(oBC93require_collector),_i);
  37. _hc=(((T286*)_er))->_header_comment/*4*/;
  38. /*[IF*/
  39. if(!(/*(IRF4.7empty*/((((T286*)_er))->_list/*8*/)==(NULL)/*)*/)){
  40. _r=r305runnable((((T286*)_er))->_list/*8*/,_ct,a1);
  41. /*[IF*/
  42. if((_r)!=((void*)(NULL))){
  43. {T286*n=malloc(sizeof(*n));
  44. *n=M286;
  45. r286make_runnable(n,_r,_ct,a1);
  46. _er=(T0*)n;
  47. }
  48. /*[IRF3.3set_header_comment*/((((T286*)(((T286*)_er))))->_header_comment)=(_hc);
  49. /*]*/
  50. /*[IF*/
  51. if((_ar)==((void*)(NULL))){
  52. _ar=se_ma358(1,
  53. _er);
  54. }
  55. else{
  56. r358add_last(((T358*)_ar),_er);
  57. }
  58. /*FI]*/
  59. }
  60. /*FI]*/
  61. }
  62. /*FI]*/
  63. _i=(_i)+(1);
  64. }
  65. /*[IF*/
  66. if((_ar)!=((void*)(NULL))){
  67. {T357*n=malloc(sizeof(*n));
  68. *n=M357;
  69. /*[IRF3.3make*/((((T357*)(n)))->_list)=(_ar);
  70. /*]*/
  71. R=(T0*)n;
  72. }
  73. }
  74. /*FI]*/
  75. }
  76. /*FI]*/
  77. return R;
  78. }
  79. /*No:ONCE_PROCEDURE.base_class*/
  80. /*No:ONCE_PROCEDURE.set_rescue_compound*/
  81. /*No:ONCE_PROCEDURE.base_class_name*/
  82.  
  83.  
  84. T0* r305start_position(T305* C){
  85. T0* R=NULL;
  86. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  87. return R;
  88. }
  89.  
  90.  
  91. T6 r305is_merge_with(T305* C,T0* a1,T0* a2){
  92. T6 R=0;
  93. R=1;
  94. /*[IF*/
  95. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
  96. /*[IF*/
  97. {/*AT*/R=0;
  98. }
  99. /*FI]*/
  100. }
  101. /*FI]*/
  102. /*[IF*/
  103. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  104. /*[IF*/
  105. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  106. R=0;
  107. }
  108.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  109. R=0;
  110. }
  111. /*FI]*/
  112. }
  113. /*FI]*/
  114. /*[IF*/
  115. if(R){
  116. /*[IF*/
  117. /*AF*//*AE*/
  118. /*FI]*/
  119. /*[IF*/
  120. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  121. R=r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2);
  122. }
  123. /*FI]*/
  124. /*[IF*/
  125. if(!(R)){
  126. R=1;
  127. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  128. /*]*/
  129. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  130. /*]*/
  131. /*]*/
  132. /*[IF*/
  133. /*AF*//*AE*/
  134. /*FI]*/
  135. /*[IF*/
  136. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  137. R=r187is_a_in((T187*)(X93arguments(a1)),(C)->_arguments/*24*/,a2);
  138. }
  139. /*FI]*/
  140. }
  141. /*FI]*/
  142. }
  143. /*FI]*/
  144. /*[IF*/
  145. if(R){
  146. r305merge_header_comments(C,a1);
  147. }
  148. /*FI]*/
  149. return R;
  150. }
  151.  
  152.  
  153. T0* r305runnable(T0* a1,T0* a2,T0* a3){
  154. T0* R=NULL;
  155. T0* _a=NULL;
  156. T2 _i=0;
  157. /*[IF*/
  158. if(!(r106empty(((T106*)a1)))){
  159. R=r106twin(((T106*)a1));
  160. _i=(((T106*)R))->_upper/*8*/;
  161. while (!((_i)==(0))) {
  162. r22push((T22*)(oBC12small_eiffel),a3);
  163. _a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
  164. /*[IF*/
  165. if((_a)==((void*)(NULL))){
  166. r305error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
  167. }
  168. else{
  169. /*[IRF3.6put*/{T106* C1=((T106*)R);
  170. T0* b1=_a;
  171. T2 b2=_i;
  172. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  173. }/*]*/
  174. }
  175. /*FI]*/
  176. r22pop((T22*)(oBC12small_eiffel));
  177. _i=(_i)-(1);
  178. }
  179. }
  180. /*FI]*/
  181. return R;
  182. }
  183. /*No:ONCE_PROCEDURE.not_computed*/
  184. /*No:ONCE_PROCEDURE.first_name*/
  185. /*No:ONCE_PROCEDURE.em1*/
  186. /*No:ONCE_PROCEDURE.header_comment*/
  187. /*No:ONCE_PROCEDURE.names*/
  188.  
  189.  
  190. void r305mapping_c_name_in(T305* C,T0* a1){
  191. r63mapping_c_in((T63*)((C)->_base_class/*4*/),a1);
  192. r7append(((T7*)a1),X83to_key(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
  193. }
  194. /*No:ONCE_PROCEDURE.fz_03*/
  195. /*No:ONCE_PROCEDURE.result_type*/
  196. /*No:ONCE_PROCEDURE.code_require*/
  197. /*No:ONCE_PROCEDURE.make_e_feature*/
  198.  
  199.  
  200. void r305add_into(T305* C,T0* a1){
  201. T0* _fn=NULL;
  202. T2 _i=0;
  203. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  204. _i=1;
  205. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  206. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  207. /*[IF*/
  208. if(r92has(((T92*)a1),X83to_key(_fn))){
  209. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  210. r21add_position(X83start_position(_fn));
  211. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  212. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  213. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  214. r7append((T7*)(oBC21explanation),b1);
  215. }/*]*/
  216. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  217. }
  218. else{
  219. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  220. }
  221. /*FI]*/
  222. _i=(_i)+(1);
  223. }
  224. }
  225.  
  226.  
  227. T6 r305can_hide(T305* C,T0* a1,T0* a2){
  228. T6 R=0;
  229. /*[IF*/
  230. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
  231. /*[IF*/
  232. {/*AT*/r21add_position(X93start_position(a1));
  233. r305error(r305start_position(C),((T0*)ms93_64647));
  234. }
  235. /*FI]*/
  236. }
  237. /*FI]*/
  238. /*[IF*/
  239. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  240. /*[IF*/
  241. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  242. r21add_position(X93start_position(a1));
  243. r305error(r305start_position(C),((T0*)ms93_83182));
  244. }
  245.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  246. r21add_position(X93start_position(a1));
  247. r305error(r305start_position(C),((T0*)ms93_67155));
  248. }
  249. /*FI]*/
  250. }
  251. /*FI]*/
  252. /*[IF*/
  253. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  254. /*[IF*/
  255. /*AF*//*AE*/
  256. /*FI]*/
  257. }
  258. /*FI]*/
  259. /*[IF*/
  260. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  261. /*[IF*/
  262. if(((C)->_arguments/*24*/)!=((void*)(NULL))){
  263. /*[IF*/
  264. if(!(r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2))){
  265. r21add_position(X93start_position(a1));
  266. r21add_position(r305start_position(C));
  267. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  268. r7append((T7*)(oBC21explanation),b1);
  269. }/*]*/
  270. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  271. r7append((T7*)(oBC21explanation),b1);
  272. }/*]*/
  273. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  274. }
  275. /*FI]*/
  276. }
  277. /*FI]*/
  278. }
  279. /*FI]*/
  280. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  281. /*[IF*/
  282. if(R){
  283. r305merge_header_comments(C,a1);
  284. }
  285. /*FI]*/
  286. return R;
  287. }
  288. /*No:ONCE_PROCEDURE.ensure_assertion*/
  289.  
  290.  
  291. T0* r305run_ensure(T0* a1){
  292. T0* R=NULL;
  293. T0* _ct=NULL;
  294. T0* _r=NULL;
  295. r106clear((T106*)(oBC93assertion_collector));
  296. /*[IRF3.3clear*/{T0* _default_item=NULL;
  297. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  298. }/*]*/
  299. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  300. r63collect_for((T63*)(X54base_class(_ct)),2,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  301. _r=r305runnable(oBC93assertion_collector,_ct,a1);
  302. /*[IF*/
  303. if((_r)!=((void*)(NULL))){
  304. {T215*n=malloc(sizeof(*n));
  305. *n=M215;
  306. r215make_runnable(n,_r,_ct,a1);
  307. R=(T0*)n;
  308. }
  309. /*[IRF3.3set_header_comment*/((((T215*)(((T215*)R))))->_header_comment)=(((T371*)(oBC93header_comment_memory))->_item/*0*/);
  310. /*]*/
  311. /*[IRF3.3clear*/{T0* _default_item=NULL;
  312. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  313. }/*]*/
  314. }
  315. /*FI]*/
  316. return R;
  317. }
  318.  
  319.  
  320. void r305check_obsolete(T305* C){
  321. /*[IF*/
  322. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  323. /*[IF*/
  324. if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
  325. /*[IRF3.6append*/{T0* b1=((T0*)ms214_39396);
  326. r7append((T7*)(oBC21explanation),b1);
  327. }/*]*/
  328. /*[IRF3.6append*/{T0* b1=((T171*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
  329. r7append((T7*)(oBC21explanation),b1);
  330. }/*]*/
  331. r305warning(r305start_position(C),((T0*)ms13_166));
  332. }
  333. /*FI]*/
  334. }
  335. /*FI]*/
  336. }
  337.  
  338.  
  339. T0* r305try_to_undefine(T305* C,T0* a1,T0* a2){
  340. T0* R=NULL;
  341. T0* _fn2=NULL;
  342. r21add_position(X83start_position(a1));
  343. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  344. /*[IF*/
  345. if((_fn2)!=((void*)(NULL))){
  346. X83undefine_in(_fn2,a2);
  347. }
  348. /*FI]*/
  349. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  350. /*]*/
  351. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  352. /*]*/
  353. /*]*/
  354. R=r305try_to_undefine_aux(C,a1,a2);
  355. /*[IF*/
  356. if((R)!=((void*)(NULL))){
  357. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*20*/);
  358. /*]*/
  359. r305merge_header_comments(C,R);
  360. }
  361. else{
  362. r63fatal_undefine(((T63*)a2),a1);
  363. }
  364. /*FI]*/
  365. return R;
  366. }
  367. /*No:ONCE_PROCEDURE.is_deferred*/
  368. /*No:ONCE_PROCEDURE.set_clients*/
  369. /*No:ONCE_PROCEDURE.code_ensure*/
  370. /*No:ONCE_PROCEDURE.nb_errors*/
  371.  
  372.  
  373. void r305make_routine(T305* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  374. /*[IRF3.3make_e_feature*/((((T305*)(C)))->_names)=(a1);
  375. /*]*/
  376. C->_header_comment=a4;
  377. C->_arguments=a2;
  378. C->_obsolete_mark=a3;
  379. C->_require_assertion=a5;
  380. }
  381.  
  382.  
  383. T0* r305to_run_feature(T305* C,T0* a1,T0* a2){
  384. T0* R=NULL;
  385. r305check_obsolete(C);
  386. {T389*n=malloc(sizeof(*n));
  387. *n=M389;
  388. r389make(n,a1,a2,(T0*)C);
  389. R=(T0*)n;
  390. }
  391. return R;
  392. }
  393.  
  394.  
  395. void r305merge_header_comments(T305* C,T0* a1){
  396. /*[IF*/
  397. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  398. /*[IF*/
  399. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  400. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  401. }
  402.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  403. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  404. }
  405. /*FI]*/
  406. }
  407. /*FI]*/
  408. }
  409. /*No:ONCE_PROCEDURE.arguments*/
  410. /*No:ONCE_PROCEDURE.require_assertion*/
  411.  
  412.  
  413. void r305warning(T0* a1,T0* a2){
  414. r21add_position(a1);
  415. r21warning((T21*)(oBC12eh),a2);
  416. }
  417.  
  418.  
  419. T0* r305try_to_undefine_aux(T305* C,T0* a1,T0* a2){
  420. T0* R=NULL;
  421. {T285*n=malloc(sizeof(*n));
  422. *n=M285;
  423. r285from_effective(n,a1,(C)->_arguments/*24*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
  424. R=(T0*)n;
  425. }
  426. return R;
  427. }
  428. /*No:ONCE_PROCEDURE.set_ensure_assertion*/
  429. /*No:ONCE_PROCEDURE.fz_bad_assertion*/
  430. /*No:ONCE_PROCEDURE.fz_dot*/
  431.  
  432.  
  433. T6 r305stupid_switch(T305* C,T0* a1,T0* a2){
  434. T6 R=0;
  435. R=((C)->_routine_body/*44*/)==((void*)(NULL));
  436. return R;
  437. }
  438.  
  439.  
  440. void r305error(T0* a1,T0* a2){
  441. r21add_position(a1);
  442. r21error((T21*)(oBC12eh),a2);
  443. }
  444.  
  445.  
  446. void r305make(T305* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  447. r305make_routine(C,a1,a2,a3,a4,a5);
  448. C->_local_vars=a6;
  449. C->_routine_body=a7;
  450. C->_use_current_state=25;
  451. }
  452. /*No:ONCE_PROCEDURE.routine_body*/
  453. /*No:ONCE_PROCEDURE.end_comment*/
  454.  
  455.  
  456. void r305collect_for(T305* C,T2 a1){
  457. T0* _er=NULL;
  458. /*[IF*/
  459. if((a1)==(1)){
  460. _er=(C)->_require_assertion/*32*/;
  461. /*[IF*/
  462. if((_er)!=((void*)(NULL))){
  463. /*[IF*/
  464. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  465. r358add_last((T358*)(oBC93require_collector),_er);
  466. }
  467. /*FI]*/
  468. }
  469. /*FI]*/
  470. }
  471. else{
  472. /*[IF*/
  473. if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
  474. /*[IRF3.3set_item*/((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(((T215*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
  475. /*]*/
  476. r215add_into((T215*)((C)->_ensure_assertion/*36*/),oBC93assertion_collector);
  477. }
  478. /*FI]*/
  479. }
  480. /*FI]*/
  481. }
  482. /*No:ONCE_PROCEDURE.local_vars*/
  483.  
  484.  
  485. void r305set_header_comment(T305* C,T0* a1){
  486. /*[IF*/
  487. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)>(1))){
  488. C->_end_comment=a1;
  489. }
  490. /*FI]*/
  491. }
  492. /*No:ONCE_PROCEDURE.clients*/
  493. /*No:ONCE_PROCEDURE.obsolete_mark*/
  494.  
  495.  
  496. void r21print_as_warning(T21* C){
  497. /*[IF*/
  498. if((C)->_no_warning/*8*/){
  499. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  500. /*]*/
  501. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  502. /*]*/
  503. /*]*/
  504. }
  505. else{
  506. r21do_print(((T0*)ms21_8743));
  507. r21incr_nb_warnings(C);
  508. }
  509. /*FI]*/
  510. }
  511. /*No:ERROR_HANDLER.nb_errors*/
  512. T0*oBC21explanation=NULL;
  513. /*No:ERROR_HANDLER.cancel*/
  514. /*No:ERROR_HANDLER.nb_warnings*/
  515.  
  516.  
  517. void r21print_as_error(T21* C){
  518. r21do_print(((T0*)ms21_2685));
  519. r21incr_nb_errors(C);
  520. }
  521.  
  522.  
  523. void r21print_as_fatal_error(T21* C){
  524. r21do_print(((T0*)ms21_19327));
  525. exit(1);
  526. }
  527.  
  528.  
  529. void r21incr_nb_errors(T21* C){
  530. C->_nb_errors=((C)->_nb_errors/*4*/)+(1);
  531. /*[IF*/
  532. if(((C)->_nb_errors/*4*/)>=(6)){
  533. r35put_string((T35*)(oBC1std_error),((T0*)ms13_3143));
  534. r35put_string((T35*)(oBC1std_error),((T0*)ms21_10744));
  535. exit(1);
  536. }
  537. /*FI]*/
  538. }
  539. /*No:ERROR_HANDLER.no_warning*/
  540.  
  541.  
  542. void r21incr_nb_warnings(T21* C){
  543. C->_nb_warnings=((C)->_nb_warnings/*0*/)+(1);
  544. }
  545.  
  546.  
  547. void r21warning(T21* C,T0* a1){
  548. /*[IRF3.6append*/{T0* b1=a1;
  549. r7append((T7*)(oBC21explanation),b1);
  550. }/*]*/
  551. r21print_as_warning(C);
  552. }
  553.  
  554.  
  555. void r21error(T21* C,T0* a1){
  556. /*[IRF3.6append*/{T0* b1=a1;
  557. r7append((T7*)(oBC21explanation),b1);
  558. }/*]*/
  559. r21print_as_error(C);
  560. }
  561. /*No:ERROR_HANDLER.make*/
  562. /*No:ERROR_HANDLER.extend*/
  563. /*No:ERROR_HANDLER.append*/
  564. /*No:ERROR_HANDLER.set_no_warning*/
  565. /*No:ERROR_HANDLER.exit_failure_code*/
  566. T0*oBC21positions=NULL;
  567. /*No:ERROR_HANDLER.fz_error_stars*/
  568.  
  569.  
  570. void r21add_position(T0* a1){
  571. /*[IF*/
  572. if((a1)!=((void*)(NULL))){
  573. /*[IF*/
  574. if(!(r69has((T69*)(oBC21positions),a1))){
  575. r69add_last((T69*)(oBC21positions),a1);
  576. }
  577. /*FI]*/
  578. }
  579. /*FI]*/
  580. }
  581.  
  582.  
  583. T6 r21empty(void){
  584. T6 R=0;
  585. R=(/*(IRF4.7empty*/(((T7*)(oBC21explanation))->_count/*4*/)==(0)/*)*/)&&(r69empty((T69*)(oBC21positions)));
  586. return R;
  587. }
  588.  
  589.  
  590. void r21add_type(T0* a1,T0* a2){
  591. /*[IRF3.6append*/{T0* b1=((T0*)ms21_2325);
  592. r7append((T7*)(oBC21explanation),b1);
  593. }/*]*/
  594. /*[IF*/
  595. if(X54is_run_type(a1)){
  596. /*[IRF3.6append*/{T0* b1=X54run_time_mark(a1);
  597. r7append((T7*)(oBC21explanation),b1);
  598. }/*]*/
  599. }
  600. else{
  601. /*[IRF3.6append*/{T0* b1=X54written_mark(a1);
  602. r7append((T7*)(oBC21explanation),b1);
  603. }/*]*/
  604. }
  605. /*FI]*/
  606. /*[IRF3.6append*/{T0* b1=a2;
  607. r7append((T7*)(oBC21explanation),b1);
  608. }/*]*/
  609. r21add_position(X54start_position(a1));
  610. }
  611.  
  612.  
  613. void r21do_print(T0* a1){
  614. T3 _previous_cc=0;
  615. T3 _cc=0;
  616. T2 _cpt=0;
  617. T2 _i=0;
  618. r35put_string((T35*)(oBC1std_error),((T0*)ms13_3143));
  619. r35put_string((T35*)(oBC1std_error),a1);
  620. r35put_string((T35*)(oBC1std_error),((T0*)ms21_384));
  621. _i=1;
  622. _cpt=(9)+((((T7*)a1))->_count/*4*/);
  623. while (!((_i)>(((T7*)(oBC21explanation))->_count/*4*/))) {
  624. _previous_cc=_cc;
  625. _cc=/*(IRF4.6item*/(((T7*)(oBC21explanation))->_storage/*0*/)[(_i)-(1)]/*)*/;
  626. _i=(_i)+(1);
  627. /*[IF*/
  628. if((_cpt)>(60)){
  629. /*[IF*/
  630. if((_cc)==('\40')){
  631. /*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
  632. T3 b1='\n';
  633. putc(b1,((FILE*)(stderr)));
  634. }/*]*/
  635. _cpt=0;
  636. }
  637.  else if((_previous_cc)==('\54')){
  638. /*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
  639. T3 b1='\n';
  640. putc(b1,((FILE*)(stderr)));
  641. }/*]*/
  642. /*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
  643. T3 b1=_cc;
  644. putc(b1,((FILE*)(stderr)));
  645. }/*]*/
  646. _cpt=1;
  647. }
  648. else{
  649. /*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
  650. T3 b1=_cc;
  651. putc(b1,((FILE*)(stderr)));
  652. }/*]*/
  653. _cpt=(_cpt)+(1);
  654. }
  655. /*FI]*/
  656. }
  657. else{
  658. /*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
  659. T3 b1=_cc;
  660. putc(b1,((FILE*)(stderr)));
  661. }/*]*/
  662. {int z1=_cc;
  663.  
  664. if((10==z1)){
  665. _cpt=0;
  666. }
  667.  else{_cpt=(_cpt)+(1);
  668. }}
  669. }
  670. /*FI]*/
  671. }
  672. /*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
  673. T3 b1='\n';
  674. putc(b1,((FILE*)(stderr)));
  675. }/*]*/
  676. _i=0;
  677. while (!((_i)>(((T69*)(oBC21positions))->_upper/*8*/))) {
  678. r70show((T70*)(/*(IRF4.6item*/(((T69*)(oBC21positions))->_storage/*0*/)[_i]/*)*/));
  679. _i=(_i)+(1);
  680. }
  681. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  682. /*]*/
  683. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  684. /*]*/
  685. /*]*/
  686. r35put_string((T35*)(oBC1std_error),((T0*)ms21_2170));
  687. }
  688.  
  689.  
  690. void r21fatal_error(T21* C,T0* a1){
  691. r7append((T7*)(oBC21explanation),a1);
  692. r21print_as_fatal_error(C);
  693. }
  694. /*No:PARENT.undefine_list*/
  695.  
  696.  
  697. T6 r79has(T79* C,T0* a1){
  698. T6 R=0;
  699. T0* _fn2=NULL;
  700. /*[IF*/
  701. if(((C)->_rename_list/*12*/)==((void*)(NULL))){
  702. R=r63has((T63*)(X54base_class((C)->_type/*4*/)),a1);
  703. }
  704. else{
  705. _fn2=r87to_old_name((T87*)((C)->_rename_list/*12*/),a1);
  706. /*[IF*/
  707. if((_fn2)==((void*)(a1))){
  708. _fn2=r87to_new_name((T87*)((C)->_rename_list/*12*/),a1);
  709. /*[IF*/
  710. if((_fn2)==((void*)(a1))){
  711. R=r63has((T63*)(X54base_class((C)->_type/*4*/)),a1);
  712. }
  713. else{
  714. R=r63has((T63*)(X54base_class((C)->_type/*4*/)),_fn2);
  715. }
  716. /*FI]*/
  717. }
  718. else{
  719. R=r63has((T63*)(X54base_class((C)->_type/*4*/)),_fn2);
  720. }
  721. /*FI]*/
  722. }
  723. /*FI]*/
  724. return R;
  725. }
  726. T0*oBC79forbidden_parent_list=NULL;
  727.  
  728.  
  729. void r79select_conflict(T0* a1,T0* a2){
  730. r21add_position(X83start_position(a1));
  731. r21add_position(X83start_position(a2));
  732. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_74095);
  733. r21fatal_error((T21*)(oBC12eh),b1);
  734. }/*]*/
  735. }
  736.  
  737.  
  738. T0* r79start_position(T79* C){
  739. T0* R=NULL;
  740. R=X54start_position((C)->_type/*4*/);
  741. return R;
  742. }
  743. /*No:PARENT.undefine_memory2*/
  744. /*No:PARENT.set_comment*/
  745.  
  746.  
  747. T0* r79precursor_for(T79* C,T0* a1,T0* a2){
  748. T0* R=NULL;
  749. T0* _original_fn=NULL;
  750. _original_fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(X51base_feature(a2)))->_names/*8*/)),1)/*)*/);
  751. /*[IF*/
  752. if(r79has_redefine(C,_original_fn)){
  753. /*[IF*/
  754. if((/*X176parent*/((T0*)(((T177*)a1))->_parent/*8*/))==((void*)(NULL))){
  755. R=r79look_up_for(C,X51run_class(a2),_original_fn);
  756. }
  757.  else if((((T64*)(/*X176parent*/((T0*)(((T177*)a1))->_parent/*8*/)))->_to_string/*0*/)==((void*)(((T64*)(X54base_class_name((C)->_type/*4*/)))->_to_string/*0*/))){
  758. R=r79look_up_for(C,X51run_class(a2),_original_fn);
  759. }
  760. /*FI]*/
  761. }
  762. /*FI]*/
  763. return R;
  764. }
  765.  
  766.  
  767. T0* r79going_up(T79* C,T0* a1,T0* a2,T0* a3){
  768. T0* R=NULL;
  769. T0* _bc=NULL;
  770. _bc=X54base_class((C)->_type/*4*/);
  771. /*[IF*/
  772. if((_bc)==((void*)(a2))){
  773. R=r79going_down(C,a1,a3);
  774. }
  775.  else if(r63is_general(((T63*)_bc))){
  776. R=r79going_down(C,a1,a3);
  777. }
  778.  else if(r63is_subclass_of(((T63*)_bc),a2)){
  779. r340add_last(((T340*)a1),(T0*)C);
  780. R=r63going_up(((T63*)_bc),a1,a2,a3);
  781. }
  782. /*FI]*/
  783. return R;
  784. }
  785. /*No:PARENT.em1*/
  786.  
  787.  
  788. T0* r79look_up_for(T79* C,T0* a1,T0* a2){
  789. T0* R=NULL;
  790. T0* _f=NULL;
  791. T0* _fn2=NULL;
  792. /*[IF*/
  793. if((((C)->_rename_list/*12*/)==((void*)(NULL)))||(!(r87affect((T87*)((C)->_rename_list/*12*/),a2)))){
  794. _f=X54look_up_for((C)->_type/*4*/,a1,a2);
  795. R=r79apply_undefine(C,_f,a2);
  796. }
  797. else{
  798. _fn2=r87to_old_name((T87*)((C)->_rename_list/*12*/),a2);
  799. /*[IF*/
  800. if((_fn2)!=((void*)(a2))){
  801. _f=X54look_up_for((C)->_type/*4*/,a1,_fn2);
  802. R=r79apply_undefine(C,_f,_fn2);
  803. }
  804. else{
  805. _f=X54look_up_for((C)->_type/*4*/,a1,a2);
  806. /*[IF*/
  807. if((_f)==((void*)(NULL))){
  808. r21add_position(X83start_position(a2));
  809. /*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
  810. r7append((T7*)(oBC21explanation),b1);
  811. }/*]*/
  812. /*[IRF3.6append*/{T0* b1=X83to_string(a2);
  813. r7append((T7*)(oBC21explanation),b1);
  814. }/*]*/
  815. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_61083);
  816. r21fatal_error((T21*)(oBC12eh),b1);
  817. }/*]*/
  818. }
  819. /*FI]*/
  820. }
  821. /*FI]*/
  822. }
  823. /*FI]*/
  824. return R;
  825. }
  826. /*No:PARENT.redefine_list*/
  827.  
  828.  
  829. void r79get_started(T79* C,T0* a1){
  830. T6 _all_check=0;
  831. T0* _new_fn=NULL;
  832. T0* _old_fn=NULL;
  833. T0* _fn=NULL;
  834. T0* _pbc=NULL;
  835. T0* _wbc=NULL;
  836. T2 _i=0;
  837. _all_check=r43all_check((T43*)(oBC12run_control));
  838. C->_parent_list=a1;
  839. _pbc=X54base_class((C)->_type/*4*/);
  840. _wbc=((T78*)((C)->_parent_list/*0*/))->_base_class/*0*/;
  841. /*[IF*/
  842. if(_all_check){
  843. /*[IF*/
  844. if(((((T63*)_pbc))->_formal_generic_list/*28*/)!=((void*)(NULL))){
  845. /*[IF*/
  846. if((X54generic_list((C)->_type/*4*/))==((void*)(NULL))){
  847. }
  848. /*FI]*/
  849. }
  850.  else if(X54is_generic((C)->_type/*4*/)){
  851. r21add_position(((T64*)((((T63*)_pbc))->_name/*24*/))->_start_position/*4*/);
  852. r21add_position(X54start_position((C)->_type/*4*/));
  853. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_72275);
  854. r21fatal_error((T21*)(oBC12eh),b1);
  855. }/*]*/
  856. }
  857. /*FI]*/
  858. }
  859. /*FI]*/
  860. /*[IF*/
  861. if((_all_check)&&(((C)->_rename_list/*12*/)!=((void*)(NULL)))){
  862. r87get_started((T87*)((C)->_rename_list/*12*/),_pbc);
  863. }
  864. /*FI]*/
  865. /*[IF*/
  866. if((_all_check)&&(((C)->_undefine_list/*20*/)!=((void*)(NULL)))){
  867. _i=r85count((T85*)((C)->_undefine_list/*20*/));
  868. while (!((_i)==(0))) {
  869. _fn=r85item((T85*)((C)->_undefine_list/*20*/),_i);
  870. _old_fn=r79get_old_name(C,_fn);
  871. /*[IF*/
  872. if(((_old_fn)==((void*)(NULL)))&&(!(r63has(((T63*)_pbc),_fn)))){
  873. r21add_position(X83start_position(_fn));
  874. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_111496a);
  875. r21fatal_error((T21*)(oBC12eh),b1);
  876. }/*]*/
  877. }
  878. /*FI]*/
  879. _i=(_i)-(1);
  880. }
  881. }
  882. /*FI]*/
  883. /*[IF*/
  884. if(((C)->_redefine_list/*24*/)!=((void*)(NULL))){
  885. _i=r85count((T85*)((C)->_redefine_list/*24*/));
  886. while (!((_i)==(0))) {
  887. _fn=r85item((T85*)((C)->_redefine_list/*24*/),_i);
  888. /*[IF*/
  889. if(!(r63proper_has(((T63*)_wbc),_fn))){
  890. r21add_position(X83start_position(_fn));
  891. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_35857);
  892. r21fatal_error((T21*)(oBC12eh),b1);
  893. }/*]*/
  894. }
  895. /*FI]*/
  896. /*[IF*/
  897. if(_all_check){
  898. _old_fn=r79get_old_name(C,_fn);
  899. /*[IF*/
  900. if(((_old_fn)==((void*)(NULL)))&&(!(r63has(((T63*)_pbc),_fn)))){
  901. r21add_position(X83start_position(_fn));
  902. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_111496);
  903. r21fatal_error((T21*)(oBC12eh),b1);
  904. }/*]*/
  905. }
  906. /*FI]*/
  907. }
  908. /*FI]*/
  909. _i=(_i)-(1);
  910. }
  911. }
  912. /*FI]*/
  913. /*[IF*/
  914. if((_all_check)&&(((C)->_select_list/*28*/)!=((void*)(NULL)))){
  915. _i=r85count((T85*)((C)->_select_list/*28*/));
  916. while (!((_i)==(0))) {
  917. _fn=r85item((T85*)((C)->_select_list/*28*/),_i);
  918. _old_fn=r79get_old_name(C,_fn);
  919. /*[IF*/
  920. if(((_old_fn)==((void*)(NULL)))&&(!(r63has(((T63*)_pbc),_fn)))){
  921. r21add_position(X83start_position(_fn));
  922. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_94000);
  923. r21fatal_error((T21*)(oBC12eh),b1);
  924. }/*]*/
  925. }
  926. /*FI]*/
  927. _new_fn=r79get_new_name(C,_fn);
  928. /*[IF*/
  929. if((_new_fn)!=((void*)(NULL))){
  930. /*[IF*/
  931. if((r79get_old_name(C,_new_fn))==((void*)(NULL))){
  932. r21add_position(X83start_position(_new_fn));
  933. r21add_position(X83start_position(_fn));
  934. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_94000);
  935. r21fatal_error((T21*)(oBC12eh),b1);
  936. }/*]*/
  937. }
  938. /*FI]*/
  939. }
  940. /*FI]*/
  941. _i=(_i)-(1);
  942. }
  943. }
  944. /*FI]*/
  945. }
  946.  
  947.  
  948. T0* r79apply_undefine(T79* C,T0* a1,T0* a2){
  949. T0* R=NULL;
  950. T2 _index=0;
  951. T0* _fnkey=NULL;
  952. T0* _ufn=NULL;
  953. _ufn=r79has_undefine(C,a2);
  954. /*[IF*/
  955. if((_ufn)!=((void*)(NULL))){
  956. /*[IF*/
  957. if(((C)->_undefine_memory1/*32*/)==((void*)(NULL))){
  958. {T62*n=malloc(sizeof(*n));
  959. *n=M62;
  960. r62with_capacity(n,r85count((T85*)((C)->_undefine_list/*20*/)));
  961. C->_undefine_memory1=(T0*)n;
  962. }
  963. {T99*n=malloc(sizeof(*n));
  964. *n=M99;
  965. r99with_capacity(n,r85count((T85*)((C)->_undefine_list/*20*/)));
  966. C->_undefine_memory2=(T0*)n;
  967. }
  968. }
  969. /*FI]*/
  970. _fnkey=X83to_key(_ufn);
  971. _index=r62fast_index_of((T62*)((C)->_undefine_memory1/*32*/),_fnkey);
  972. /*[IF*/
  973. if((_index)>(((T62*)((C)->_undefine_memory1/*32*/))->_upper/*8*/)){
  974. r62add_last((T62*)((C)->_undefine_memory1/*32*/),_fnkey);
  975. R=X93try_to_undefine(a1,_ufn,((T78*)((C)->_parent_list/*0*/))->_base_class/*0*/);
  976. X99add_last((C)->_undefine_memory2/*36*/,R);
  977. }
  978. else{
  979. R=/*X99item*/((T0*)r99item((T99*)((C)->_undefine_memory2/*36*/),_index));
  980. }
  981. /*FI]*/
  982. }
  983. else{
  984. R=a1;
  985. }
  986. /*FI]*/
  987. return R;
  988. }
  989. /*No:PARENT.us_none*/
  990. /*No:PARENT.us_integer*/
  991. /*No:PARENT.rename_list*/
  992. /*No:PARENT.set_select*/
  993. /*No:PARENT.fz_09*/
  994. /*No:PARENT.comment*/
  995.  
  996.  
  997. T0* r79smallest_ancestor(T79* C,T0* a1){
  998. T0* R=NULL;
  999. /*[IF*/
  1000. if(X54is_generic((C)->_type/*4*/)){
  1001. R=X54to_runnable((C)->_type/*4*/,a1);
  1002. }
  1003. else{
  1004. R=(C)->_type/*4*/;
  1005. }
  1006. /*FI]*/
  1007. return R;
  1008. }
  1009. /*No:PARENT.fatal_error*/
  1010.  
  1011.  
  1012. T6 r79has_redefine(T79* C,T0* a1){
  1013. T6 R=0;
  1014. /*[IF*/
  1015. if(((C)->_redefine_list/*24*/)!=((void*)(NULL))){
  1016. R=r85has((T85*)((C)->_redefine_list/*24*/),a1);
  1017. }
  1018. /*FI]*/
  1019. return R;
  1020. }
  1021. /*No:PARENT.set_redefine*/
  1022.  
  1023.  
  1024. T0* r79get_new_name(T79* C,T0* a1){
  1025. T0* R=NULL;
  1026. /*[IF*/
  1027. if(((C)->_rename_list/*12*/)!=((void*)(NULL))){
  1028. R=r87to_new_name((T87*)((C)->_rename_list/*12*/),a1);
  1029. /*[IF*/
  1030. if((R)==((void*)(a1))){
  1031. R=NULL;
  1032. }
  1033. /*FI]*/
  1034. }
  1035. /*FI]*/
  1036. return R;
  1037. }
  1038.  
  1039.  
  1040. T0* r79up_to_original(T79* C,T0* a1,T0* a2){
  1041. T0* R=NULL;
  1042. T0* _bc=NULL;
  1043. T0* _old_name=NULL;
  1044. _bc=X54base_class((C)->_type/*4*/);
  1045. /*[IF*/
  1046. if(((C)->_rename_list/*12*/)==((void*)(NULL))){
  1047. R=r63up_to_original(((T63*)_bc),a1,a2);
  1048. }
  1049.  else if(r87affect((T87*)((C)->_rename_list/*12*/),a2)){
  1050. _old_name=r87to_old_name((T87*)((C)->_rename_list/*12*/),a2);
  1051. /*[IF*/
  1052. if((_old_name)!=((void*)(a2))){
  1053. R=r63up_to_original(((T63*)_bc),a1,_old_name);
  1054. }
  1055. /*FI]*/
  1056. }
  1057. else{
  1058. R=r63up_to_original(((T63*)_bc),a1,a2);
  1059. }
  1060. /*FI]*/
  1061. return R;
  1062. }
  1063. /*No:PARENT.us_double*/
  1064.  
  1065.  
  1066. void r79missing_select(T0* a1,T0* a2){
  1067. r21add_position(X83start_position(a1));
  1068. r21add_position(X83start_position(a2));
  1069. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_99138);
  1070. r21fatal_error((T21*)(oBC12eh),b1);
  1071. }/*]*/
  1072. }
  1073. /*No:PARENT.parent_list*/
  1074. /*No:PARENT.us_character*/
  1075.  
  1076.  
  1077. T0* r79get_old_name(T79* C,T0* a1){
  1078. T0* R=NULL;
  1079. /*[IF*/
  1080. if(((C)->_rename_list/*12*/)!=((void*)(NULL))){
  1081. R=r87to_old_name((T87*)((C)->_rename_list/*12*/),a1);
  1082. /*[IF*/
  1083. if((R)==((void*)(a1))){
  1084. R=NULL;
  1085. }
  1086. /*FI]*/
  1087. }
  1088. /*FI]*/
  1089. return R;
  1090. }
  1091. /*No:PARENT.type*/
  1092.  
  1093.  
  1094. T0* r79clients_for(T79* C,T0* a1){
  1095. T0* R=NULL;
  1096. T0* _old_fn=NULL;
  1097. /*[IF*/
  1098. if(((C)->_rename_list/*12*/)==((void*)(NULL))){
  1099. /*[IF*/
  1100. if(((C)->_export_list/*16*/)==((void*)(NULL))){
  1101. R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),a1);
  1102. }
  1103. else{
  1104. R=r317clients_for((T317*)((C)->_export_list/*16*/),a1);
  1105. /*[IF*/
  1106. if((R)==((void*)(NULL))){
  1107. R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),a1);
  1108. }
  1109. /*FI]*/
  1110. }
  1111. /*FI]*/
  1112. }
  1113. else{
  1114. _old_fn=r87to_old_name((T87*)((C)->_rename_list/*12*/),a1);
  1115. /*[IF*/
  1116. if(((C)->_export_list/*16*/)==((void*)(NULL))){
  1117. R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),_old_fn);
  1118. }
  1119. else{
  1120. R=r317clients_for((T317*)((C)->_export_list/*16*/),_old_fn);
  1121. /*[IF*/
  1122. if((R)==((void*)(NULL))){
  1123. R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),_old_fn);
  1124. }
  1125. /*FI]*/
  1126. }
  1127. /*FI]*/
  1128. }
  1129. /*FI]*/
  1130. return R;
  1131. }
  1132.  
  1133.  
  1134. T0* r79has_undefine(T79* C,T0* a1){
  1135. T0* R=NULL;
  1136. /*[IF*/
  1137. if(((C)->_undefine_list/*20*/)!=((void*)(NULL))){
  1138. R=r85feature_name((T85*)((C)->_undefine_list/*20*/),X83to_key(a1));
  1139. }
  1140. /*FI]*/
  1141. return R;
  1142. }
  1143. /*No:PARENT.us_native_array*/
  1144. /*No:PARENT.set_undefine*/
  1145. /*No:PARENT.set_export*/
  1146.  
  1147.  
  1148. T0* r79do_rename(T79* C,T0* a1){
  1149. T0* R=NULL;
  1150. /*[IF*/
  1151. if(((C)->_rename_list/*12*/)==((void*)(NULL))){
  1152. R=a1;
  1153. }
  1154. else{
  1155. R=r87to_new_name((T87*)((C)->_rename_list/*12*/),a1);
  1156. }
  1157. /*FI]*/
  1158. return R;
  1159. }
  1160.  
  1161.  
  1162. void r79add_rename(T79* C,T0* a1){
  1163. /*[IF*/
  1164. if(((C)->_rename_list/*12*/)==((void*)(NULL))){
  1165. {T87*n=malloc(sizeof(*n));
  1166. *n=M87;
  1167. /*[IRF3.3make*/((((T87*)(n)))->_list)=(se_ma89(1,
  1168. a1));
  1169. /*]*/
  1170. C->_rename_list=(T0*)n;
  1171. }
  1172. }
  1173. else{
  1174. /*[IRF3.5add_last*/r89add_last(((T89*)(((T87*)((C)->_rename_list/*12*/))->_list/*0*/)),a1);
  1175. /*]*/
  1176. }
  1177. /*FI]*/
  1178. }
  1179. /*No:PARENT.undefine_memory1*/
  1180.  
  1181.  
  1182. T0* r79going_down(T79* C,T0* a1,T0* a2){
  1183. T0* R=NULL;
  1184. T0* _previous=NULL;
  1185. /*[IF*/
  1186. if(((C)->_rename_list/*12*/)==((void*)(NULL))){
  1187. R=a2;
  1188. }
  1189. else{
  1190. R=r87to_new_name((T87*)((C)->_rename_list/*12*/),a2);
  1191. }
  1192. /*FI]*/
  1193. /*[IF*/
  1194. if(!(r340empty(((T340*)a1)))){
  1195. _previous=r340last(((T340*)a1));
  1196. r340remove_last(((T340*)a1));
  1197. R=r79going_down(((T79*)_previous),a1,R);
  1198. }
  1199. /*FI]*/
  1200. return R;
  1201. }
  1202. /*No:PARENT.us_bit*/
  1203.  
  1204.  
  1205. void r79multiple_check(T79* C,T0* a1){
  1206. T0* _fn2=NULL;
  1207. T0* _fn1=NULL;
  1208. T2 _i=0;
  1209. T0* _bc2=NULL;
  1210. T0* _bc1=NULL;
  1211. _bc1=X54base_class((C)->_type/*4*/);
  1212. _bc2=X54base_class((((T79*)a1))->_type/*4*/);
  1213. /*[IF*/
  1214. if((((_bc1)==((void*)(_bc2)))||(r63is_subclass_of(((T63*)_bc1),_bc2)))||(r63is_subclass_of(((T63*)_bc2),_bc1))){
  1215. /*[IF*/
  1216. if(((C)->_redefine_list/*24*/)!=((void*)(NULL))){
  1217. _i=r85count((T85*)((C)->_redefine_list/*24*/));
  1218. while (!((_i)==(0))) {
  1219. _fn1=r85item((T85*)((C)->_redefine_list/*24*/),_i);
  1220. /*[IF*/
  1221. if(((((T79*)a1))->_rename_list/*12*/)==((void*)(NULL))){
  1222. }
  1223.  else if(r87affect((T87*)((((T79*)a1))->_rename_list/*12*/),_fn1)){
  1224. _fn2=r87to_new_name((T87*)((((T79*)a1))->_rename_list/*12*/),_fn1);
  1225. /*[IF*/
  1226. if((_fn2)!=((void*)(_fn1))){
  1227. /*[IF*/
  1228. if(((C)->_select_list/*28*/)!=((void*)(NULL))){
  1229. /*[IF*/
  1230. if(r85has((T85*)((C)->_select_list/*28*/),_fn1)){
  1231. /*[IF*/
  1232. if(((((T79*)a1))->_select_list/*28*/)!=((void*)(NULL))){
  1233. /*[IF*/
  1234. if(r85has((T85*)((((T79*)a1))->_select_list/*28*/),_fn2)){
  1235. r79select_conflict(_fn1,_fn2);
  1236. }
  1237. /*FI]*/
  1238. }
  1239. /*FI]*/
  1240. }
  1241.  else if(((((T79*)a1))->_select_list/*28*/)==((void*)(NULL))){
  1242. r79missing_select(_fn1,_fn2);
  1243. }
  1244.  else if(!(r85has((T85*)((((T79*)a1))->_select_list/*28*/),_fn2))){
  1245. r79missing_select(_fn1,_fn2);
  1246. }
  1247. /*FI]*/
  1248. }
  1249.  else if(((((T79*)a1))->_select_list/*28*/)==((void*)(NULL))){
  1250. r79missing_select(_fn1,_fn2);
  1251. }
  1252.  else if(!(r85has((T85*)((((T79*)a1))->_select_list/*28*/),_fn2))){
  1253. r79missing_select(_fn1,_fn2);
  1254. }
  1255. /*FI]*/
  1256. }
  1257. /*FI]*/
  1258. }
  1259. /*FI]*/
  1260. _i=(_i)-(1);
  1261. }
  1262. }
  1263. /*FI]*/
  1264. }
  1265. /*FI]*/
  1266. }
  1267. /*No:PARENT.us_pointer*/
  1268.  
  1269.  
  1270. T6 r79has_select_for(T79* C,T0* a1){
  1271. T6 R=0;
  1272. /*[IF*/
  1273. if(((C)->_select_list/*28*/)!=((void*)(NULL))){
  1274. R=r85has((T85*)((C)->_select_list/*28*/),a1);
  1275. }
  1276. /*FI]*/
  1277. return R;
  1278. }
  1279.  
  1280.  
  1281. void r79make(T79* C,T0* a1){
  1282. C->_type=a1;
  1283. /*[IF*/
  1284. if(r39fast_has((T39*)(oBC79forbidden_parent_list),X54written_mark((C)->_type/*4*/))){
  1285. r21add_position(X54start_position((C)->_type/*4*/));
  1286. /*[IRF3.6append*/{T0* b1=((T0*)ms79_22860);
  1287. r7append((T7*)(oBC21explanation),b1);
  1288. }/*]*/
  1289. /*[IRF3.6append*/{T0* b1=X54written_mark((C)->_type/*4*/);
  1290. r7append((T7*)(oBC21explanation),b1);
  1291. }/*]*/
  1292. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_34704);
  1293. r21fatal_error((T21*)(oBC12eh),b1);
  1294. }/*]*/
  1295. }
  1296. /*FI]*/
  1297. }
  1298. /*No:PARENT.us_real*/
  1299.  
  1300.  
  1301. void r79collect_for(T79* C,T2 a1,T0* a2){
  1302. T0* _fn2=NULL;
  1303. /*[IF*/
  1304. if((((C)->_rename_list/*12*/)==((void*)(NULL)))||(!(r87affect((T87*)((C)->_rename_list/*12*/),a2)))){
  1305. r63collect_for((T63*)(X54base_class((C)->_type/*4*/)),a1,a2);
  1306. }
  1307. else{
  1308. _fn2=r87to_old_name((T87*)((C)->_rename_list/*12*/),a2);
  1309. /*[IF*/
  1310. if((_fn2)!=((void*)(a2))){
  1311. r63collect_for((T63*)(X54base_class((C)->_type/*4*/)),a1,_fn2);
  1312. }
  1313. /*FI]*/
  1314. }
  1315. /*FI]*/
  1316. }
  1317.  
  1318.  
  1319. T6 r79is_a_vncg(T79* C,T0* a1,T0* a2){
  1320. T6 R=0;
  1321. T0* _t2_bcn=NULL;
  1322. T0* _type_bcn=NULL;
  1323. T0* _t2_bc=NULL;
  1324. T0* _type_bc=NULL;
  1325. T0* _rt=NULL;
  1326. T0* _tfg=NULL;
  1327. T0* _gl2=NULL;
  1328. T0* _gl1=NULL;
  1329. T0* _gl=NULL;
  1330. T2 _i=0;
  1331. T2 _rank=0;
  1332. _type_bc=X54base_class((C)->_type/*4*/);
  1333. _type_bcn=((T64*)((((T63*)_type_bc))->_name/*24*/))->_to_string/*0*/;
  1334. _t2_bc=X54base_class(a2);
  1335. _t2_bcn=((T64*)((((T63*)_t2_bc))->_name/*24*/))->_to_string/*0*/;
  1336. /*[IF*/
  1337. if((_type_bcn)==((void*)(_t2_bcn))){
  1338. _gl=X54generic_list((C)->_type/*4*/);
  1339. _gl2=X54generic_list(a2);
  1340. /*[IF*/
  1341. if(((_gl)==((void*)(NULL)))||((r261count(((T261*)_gl)))!=(r261count(((T261*)_gl2))))){
  1342. r21add_position(X54start_position((C)->_type/*4*/));
  1343. r21add_position(X54start_position(a2));
  1344. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_60544);
  1345. r21fatal_error((T21*)(oBC12eh),b1);
  1346. }/*]*/
  1347. }
  1348. /*FI]*/
  1349. /*[IF*/
  1350. if(X54is_generic(a1)){
  1351. _gl1=X54generic_list(a1);
  1352. R=1;
  1353. _i=r261count(((T261*)_gl2));
  1354. while (!((!(R))||((_i)==(0)))) {
  1355. /*[IF*/
  1356. if(X54is_formal_generic(r261item(((T261*)_gl),_i))){
  1357. _tfg=r261item(((T261*)_gl),_i);
  1358. if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
  1359. case 280: 
  1360. break;
  1361. default:
  1362. _tfg=NULL;
  1363. };_rank=(((T280*)_tfg))->_rank/*8*/;
  1364. R=X54is_a(r261item(((T261*)_gl1),_rank),r261item(((T261*)_gl2),_i));
  1365. }
  1366. else{
  1367. _rt=X54run_type(X54to_runnable(r261item(((T261*)_gl),_i),a1));
  1368. R=X54is_a(_rt,r261item(((T261*)_gl2),_i));
  1369. }
  1370. /*FI]*/
  1371. _i=(_i)-(1);
  1372. }
  1373. }
  1374. else{
  1375. R=X54is_a((C)->_type/*4*/,a2);
  1376. }
  1377. /*FI]*/
  1378. /*[IF*/
  1379. if(!(R)){
  1380. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1381. /*]*/
  1382. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1383. /*]*/
  1384. /*]*/
  1385. }
  1386. /*FI]*/
  1387. }
  1388.  else if(r63is_subclass_of(((T63*)_type_bc),_t2_bc)){
  1389. /*[IF*/
  1390. if(X54is_generic(a1)){
  1391. _rt=X54run_type(X54to_runnable((C)->_type/*4*/,a1));
  1392. R=r63is_a_vncg(((T63*)_type_bc),_rt,a2);
  1393. }
  1394. else{
  1395. R=r63is_a_vncg(((T63*)_type_bc),(C)->_type/*4*/,a2);
  1396. }
  1397. /*FI]*/
  1398. /*[IF*/
  1399. if(!(R)){
  1400. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1401. /*]*/
  1402. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1403. /*]*/
  1404. /*]*/
  1405. }
  1406. /*FI]*/
  1407. }
  1408. /*FI]*/
  1409. return R;
  1410. }
  1411. /*No:PARENT.export_list*/
  1412. /*No:PARENT.select_list*/
  1413. /*No:PARENT.us_boolean*/
  1414. /*No:E_LOOP.nb_errors*/
  1415. /*No:E_LOOP.initialize*/
  1416. /*No:E_LOOP.start_position*/
  1417.  
  1418.  
  1419. T0* r244add_comment(T244* C,T0* a1){
  1420. T0* R=NULL;
  1421. /*[IF*/
  1422. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  1423. R=(T0*)C;
  1424. }
  1425.  else {/*AT*//*[IF*/
  1426. if((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(1)){
  1427. R=(T0*)C;
  1428. }
  1429. else{
  1430. {T225*n=malloc(sizeof(*n));
  1431. *n=M225;
  1432. r225make(n,(T0*)C,a1);
  1433. R=(T0*)n;
  1434. }
  1435. }
  1436. /*FI]*/
  1437. }
  1438. /*FI]*/
  1439. return R;
  1440. }
  1441. /*No:E_LOOP.fz_is_not_boolean*/
  1442.  
  1443.  
  1444. T6 r244use_current(T244* C){
  1445. T6 R=0;
  1446. T6 _loop_check=0;
  1447. _loop_check=r43loop_check((T43*)(oBC12run_control));
  1448. /*[IF*/
  1449. if((_loop_check)&&(((C)->_variant_clause/*16*/)!=((void*)(NULL)))){
  1450. R=(R)||(X242use_current((C)->_variant_clause/*16*/));
  1451. }
  1452. /*FI]*/
  1453. /*[IF*/
  1454. if(((C)->_initialize/*8*/)!=((void*)(NULL))){
  1455. R=(R)||(r216use_current((T216*)((C)->_initialize/*8*/)));
  1456. }
  1457. /*FI]*/
  1458. R=(R)||(X56use_current((C)->_until_expression/*20*/));
  1459. /*[IF*/
  1460. if((_loop_check)&&(((C)->_invariant_clause/*12*/)!=((void*)(NULL)))){
  1461. R=(R)||(r243use_current((T243*)((C)->_invariant_clause/*12*/)));
  1462. }
  1463. /*FI]*/
  1464. /*[IF*/
  1465. if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
  1466. R=(R)||(r216use_current((T216*)((C)->_loop_body/*24*/)));
  1467. }
  1468. /*FI]*/
  1469. return R;
  1470. }
  1471.  
  1472.  
  1473. void r244compile_to_c(T244* C){
  1474. T6 _invariant_flag=0;
  1475. T6 _variant_flag=0;
  1476. T6 _loop_check=0;
  1477. _loop_check=r43loop_check((T43*)(oBC12run_control));
  1478. /*[IF*/
  1479. if((_loop_check)&&(((C)->_variant_clause/*16*/)!=((void*)(NULL)))){
  1480. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms244_12258));
  1481. /*]*/
  1482. _variant_flag=1;
  1483. }
  1484. /*FI]*/
  1485. /*[IF*/
  1486. if(((C)->_initialize/*8*/)!=((void*)(NULL))){
  1487. r216compile_to_c((T216*)((C)->_initialize/*8*/));
  1488. }
  1489. /*FI]*/
  1490. /*[IF*/
  1491. if((_loop_check)&&(((C)->_invariant_clause/*12*/)!=((void*)(NULL)))){
  1492. r243compile_to_c((T243*)((C)->_invariant_clause/*12*/));
  1493. _invariant_flag=1;
  1494. }
  1495. /*FI]*/
  1496. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms244_8208));
  1497. /*]*/
  1498. /*[IF*/
  1499. if(r43no_check((T43*)(oBC12run_control))){
  1500. r25trace_boolean_expression((T25*)(oBC12cpp),(C)->_until_expression/*20*/);
  1501. }
  1502. else{
  1503. X56compile_to_c((C)->_until_expression/*20*/);
  1504. }
  1505. /*FI]*/
  1506. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms244_1310));
  1507. /*]*/
  1508. /*[IF*/
  1509. if(_variant_flag){
  1510. r25variant_check((T25*)(oBC12cpp),/*X242expression*/((T0*)((T246*)((C)->_variant_clause/*16*/))->_expression/*8*/));
  1511. }
  1512. /*FI]*/
  1513. /*[IF*/
  1514. if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
  1515. r216compile_to_c((T216*)((C)->_loop_body/*24*/));
  1516. }
  1517. /*FI]*/
  1518. /*[IF*/
  1519. if(_invariant_flag){
  1520. r243compile_to_c((T243*)((C)->_invariant_clause/*12*/));
  1521. }
  1522. /*FI]*/
  1523. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  1524. /*]*/
  1525. /*[IF*/
  1526. if(_variant_flag){
  1527. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  1528. /*]*/
  1529. }
  1530. /*FI]*/
  1531. }
  1532.  
  1533.  
  1534. T0* r244to_runnable(T244* C,T0* a1){
  1535. T0* R=NULL;
  1536. T6 _loop_check=0;
  1537. T0* _ue=NULL;
  1538. _loop_check=r43loop_check((T43*)(oBC12run_control));
  1539. /*[IF*/
  1540. if(((C)->_current_type/*28*/)==((void*)(NULL))){
  1541. C->_current_type=a1;
  1542. /*[IF*/
  1543. if(((C)->_initialize/*8*/)!=((void*)(NULL))){
  1544. C->_initialize=r216to_runnable((T216*)((C)->_initialize/*8*/),a1);
  1545. /*[IF*/
  1546. if(((C)->_initialize/*8*/)==((void*)(NULL))){
  1547. r244error((C)->_start_position/*4*/,((T0*)ms244_36456));
  1548. }
  1549. /*FI]*/
  1550. }
  1551. /*FI]*/
  1552. /*[IF*/
  1553. if((_loop_check)&&(((C)->_invariant_clause/*12*/)!=((void*)(NULL)))){
  1554. C->_invariant_clause=r243to_runnable((T243*)((C)->_invariant_clause/*12*/),a1);
  1555. /*[IF*/
  1556. if(((C)->_invariant_clause/*12*/)==((void*)(NULL))){
  1557. r244error((C)->_start_position/*4*/,((T0*)ms244_14826));
  1558. }
  1559. /*FI]*/
  1560. }
  1561. /*FI]*/
  1562. /*[IF*/
  1563. if((_loop_check)&&(((C)->_variant_clause/*16*/)!=((void*)(NULL)))){
  1564. C->_variant_clause=X242to_runnable((C)->_variant_clause/*16*/,a1);
  1565. /*[IF*/
  1566. if(((C)->_variant_clause/*16*/)==((void*)(NULL))){
  1567. r244error((C)->_start_position/*4*/,((T0*)ms244_42224));
  1568. }
  1569. /*FI]*/
  1570. }
  1571. /*FI]*/
  1572. _ue=X56to_runnable((C)->_until_expression/*20*/,a1);
  1573. /*[IF*/
  1574. if((_ue)!=((void*)(NULL))){
  1575. /*[IF*/
  1576. if(!(X54is_boolean(X56result_type(_ue)))){
  1577. r244error(X56start_position(_ue),((T0*)ms244_78732));
  1578. r21add_type(X56result_type(_ue),((T0*)ms13_18320));
  1579. r21print_as_error((T21*)(oBC12eh));
  1580. }
  1581. /*FI]*/
  1582. C->_until_expression=_ue;
  1583. }
  1584. else{
  1585. r244error((C)->_start_position/*4*/,((T0*)ms244_75996));
  1586. }
  1587. /*FI]*/
  1588. /*[IF*/
  1589. if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
  1590. C->_loop_body=r216to_runnable((T216*)((C)->_loop_body/*24*/),a1);
  1591. /*[IF*/
  1592. if(((C)->_loop_body/*24*/)==((void*)(NULL))){
  1593. r244error((C)->_start_position/*4*/,((T0*)ms244_24282));
  1594. }
  1595. /*FI]*/
  1596. }
  1597. /*FI]*/
  1598. /*[IF*/
  1599. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1600. R=(T0*)C;
  1601. }
  1602. /*FI]*/
  1603. }
  1604. else{
  1605. {T244*n=malloc(sizeof(*n));
  1606. *n=M244;
  1607. r244make(n,(C)->_start_position/*4*/,(C)->_initialize/*8*/,(C)->_invariant_clause/*12*/,(C)->_variant_clause/*16*/,(C)->_until_expression/*20*/,(C)->_loop_body/*24*/);
  1608. R=(T0*)n;
  1609. }
  1610. R=r244to_runnable(((T244*)R),a1);
  1611. }
  1612. /*FI]*/
  1613. return R;
  1614. }
  1615. /*No:E_LOOP.current_type*/
  1616. /*No:E_LOOP.invariant_clause*/
  1617. /*No:E_LOOP.until_expression*/
  1618. /*No:E_LOOP.is_pre_computable*/
  1619. /*No:E_LOOP.fz_12*/
  1620. /*No:E_LOOP.collect_c_tmp*/
  1621.  
  1622.  
  1623. void r244error(T0* a1,T0* a2){
  1624. r21add_position(a1);
  1625. r21error((T21*)(oBC12eh),a2);
  1626. }
  1627. /*No:E_LOOP.end_mark_comment*/
  1628.  
  1629.  
  1630. void r244make(T244* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1631. C->_start_position=a1;
  1632. C->_initialize=a2;
  1633. C->_invariant_clause=a3;
  1634. C->_variant_clause=a4;
  1635. C->_until_expression=a5;
  1636. C->_loop_body=a6;
  1637. }
  1638. /*No:E_LOOP.variant_clause*/
  1639. /*No:E_LOOP.loop_body*/
  1640.  
  1641.  
  1642. void r244afd_check(T244* C){
  1643. /*[IF*/
  1644. if(r43loop_check((T43*)(oBC12run_control))){
  1645. /*[IF*/
  1646. if(((C)->_variant_clause/*16*/)!=((void*)(NULL))){
  1647. X242afd_check((C)->_variant_clause/*16*/);
  1648. }
  1649. /*FI]*/
  1650. /*[IF*/
  1651. if(((C)->_invariant_clause/*12*/)!=((void*)(NULL))){
  1652. r243afd_check((T243*)((C)->_invariant_clause/*12*/));
  1653. }
  1654. /*FI]*/
  1655. }
  1656. /*FI]*/
  1657. /*[IF*/
  1658. if(((C)->_initialize/*8*/)!=((void*)(NULL))){
  1659. r216afd_check((T216*)((C)->_initialize/*8*/));
  1660. }
  1661. /*FI]*/
  1662. X56afd_check((C)->_until_expression/*20*/);
  1663. /*[IF*/
  1664. if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
  1665. r216afd_check((T216*)((C)->_loop_body/*24*/));
  1666. }
  1667. /*FI]*/
  1668. }
  1669.  
  1670.  
  1671. T2 r139static_value(T139* C){
  1672. T2 R=0;
  1673. T0* _rf=NULL;
  1674. T0* _running=NULL;
  1675. _running=((T24*)(X51run_class((C)->_run_feature/*8*/)))->_running/*12*/;
  1676. /*[IF*/
  1677. if(((_running)!=((void*)(NULL)))&&((r328count(((T328*)_running)))==(1))){
  1678. _rf=r24dynamic((T24*)(r328first(((T328*)_running))),(C)->_run_feature/*8*/);
  1679. /*[IF*/
  1680. if(X51is_static(_rf)){
  1681. R=X51static_value_mem(_rf);
  1682. }
  1683. /*FI]*/
  1684. }
  1685. /*FI]*/
  1686. return R;
  1687. }
  1688. /*No:CALL_PREFIX_FREEOP.call_proc_call_c2c*/
  1689. /*No:CALL_PREFIX_FREEOP.feature_name*/
  1690.  
  1691.  
  1692. void r139finalize(T139* C){
  1693. T0* _rf=NULL;
  1694. T0* _rc=NULL;
  1695. _rf=(C)->_run_feature/*8*/;
  1696. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  1697. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  1698. }
  1699.  
  1700.  
  1701. T6 r139is_static(T139* C){
  1702. T6 R=0;
  1703. T0* _rf=NULL;
  1704. T0* _running=NULL;
  1705. _running=((T24*)(X51run_class((C)->_run_feature/*8*/)))->_running/*12*/;
  1706. /*[IF*/
  1707. if(((_running)!=((void*)(NULL)))&&((r328count(((T328*)_running)))==(1))){
  1708. _rf=r24dynamic((T24*)(r328first(((T328*)_running))),(C)->_run_feature/*8*/);
  1709. /*[IF*/
  1710. if(X51is_static(_rf)){
  1711. R=1;
  1712. }
  1713. /*FI]*/
  1714. }
  1715. /*FI]*/
  1716. return R;
  1717. }
  1718. /*No:CALL_PREFIX_FREEOP.is_manifest_string*/
  1719.  
  1720.  
  1721. T0* r139start_position(T139* C){
  1722. T0* R=NULL;
  1723. R=((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  1724. return R;
  1725. }
  1726. /*No:CALL_PREFIX_FREEOP.c_simple*/
  1727.  
  1728.  
  1729. T0* r139add_comment(T139* C,T0* a1){
  1730. T0* R=NULL;
  1731. /*[IF*/
  1732. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  1733. R=(T0*)C;
  1734. }
  1735. else{
  1736. {T230*n=malloc(sizeof(*n));
  1737. *n=M230;
  1738. r230make(n,(T0*)C,a1);
  1739. R=(T0*)n;
  1740. }
  1741. }
  1742. /*FI]*/
  1743. return R;
  1744. }
  1745.  
  1746.  
  1747. T2 r139to_integer(T139* C){
  1748. T2 R=0;
  1749. T0* _rf1=NULL;
  1750. _rf1=(C)->_run_feature/*8*/;
  1751. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1752. case 376: 
  1753. break;
  1754. default:
  1755. _rf1=NULL;
  1756. };/*[IF*/
  1757. if((_rf1)==((void*)(NULL))){
  1758. r139error(r139start_position(C),((T0*)ms13_45846));
  1759. }
  1760. else{
  1761. R=X56to_integer((((T376*)_rf1))->_value/*36*/);
  1762. }
  1763. /*FI]*/
  1764. return R;
  1765. }
  1766.  
  1767.  
  1768. T6 r139use_current(T139* C){
  1769. T6 R=0;
  1770. /*[IF*/
  1771. /*AF*//*AE*/
  1772. /*FI]*/
  1773. /*[IF*/
  1774. if(R){
  1775. }
  1776.  else if(X56is_current((C)->_target/*4*/)){
  1777. R=X51use_current((C)->_run_feature/*8*/);
  1778. }
  1779. else{
  1780. R=X56use_current((C)->_target/*4*/);
  1781. }
  1782. /*FI]*/
  1783. return R;
  1784. }
  1785.  
  1786.  
  1787. T0* r139to_runnable(T139* C,T0* a1){
  1788. T0* R=NULL;
  1789. T0* _rf=NULL;
  1790. T0* _t=NULL;
  1791. _t=r139runnable_expression((C)->_target/*4*/,a1);
  1792. _rf=r139run_feature_for(C,_t,a1);
  1793. /*[IF*/
  1794. if(((C)->_run_feature/*8*/)==((void*)(NULL))){
  1795. C->_target=_t;
  1796. C->_run_feature=_rf;
  1797. r139run_feature_match(C);
  1798. R=(T0*)C;
  1799. }
  1800.  else if((_t)==((void*)((C)->_target/*4*/))){
  1801. R=(T0*)C;
  1802. }
  1803. else{
  1804. {T139*n=malloc(sizeof(*n));
  1805. *n=M139;
  1806. r139with(n,_t,(C)->_feature_name/*12*/,_rf);
  1807. R=(T0*)n;
  1808. }
  1809. }
  1810. /*FI]*/
  1811. return R;
  1812. }
  1813.  
  1814.  
  1815. void r139compile_to_c_old(T139* C){
  1816. X56compile_to_c_old((C)->_target/*4*/);
  1817. /*[IF*/
  1818. /*AF*//*AE*/
  1819. /*FI]*/
  1820. }
  1821. /*No:CALL_PREFIX_FREEOP.is_pre_computable*/
  1822.  
  1823.  
  1824. void r139collect_c_tmp(T139* C){
  1825. /*[IF*/
  1826. if(((C)->_run_feature/*8*/)!=((void*)(NULL))){
  1827. X51collect_c_tmp((C)->_run_feature/*8*/);
  1828. }
  1829. /*FI]*/
  1830. X56collect_c_tmp((C)->_target/*4*/);
  1831. /*[IF*/
  1832. /*AF*//*AE*/
  1833. /*FI]*/
  1834. }
  1835. /*No:CALL_PREFIX_FREEOP.fz_iinaiv*/
  1836.  
  1837.  
  1838. T0* r139result_type(T139* C){
  1839. T0* R=NULL;
  1840. R=X51result_type((C)->_run_feature/*8*/);
  1841. /*[IF*/
  1842. if(X54is_like_current(R)){
  1843. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*8*/))->_current_type/*4*/);
  1844. }
  1845. /*FI]*/
  1846. return R;
  1847. }
  1848. /*No:CALL_PREFIX_FREEOP.run_feature*/
  1849. /*No:CALL_PREFIX_FREEOP.fz_07*/
  1850. /*No:CALL_PREFIX_FREEOP.arg_count*/
  1851.  
  1852.  
  1853. void r139with(T139* C,T0* a1,T0* a2,T0* a3){
  1854. C->_target=a1;
  1855. C->_feature_name=a2;
  1856. C->_run_feature=a3;
  1857. r139run_feature_match(C);
  1858. }
  1859. /*No:CALL_PREFIX_FREEOP.is_result*/
  1860. /*No:CALL_PREFIX_FREEOP.fatal_error*/
  1861.  
  1862.  
  1863. void r139mapping_c_target(T139* C,T0* a1){
  1864. T0* _actual_type=NULL;
  1865. T6 _flag=0;
  1866. _flag=r25call_invariant_start(a1);
  1867. _actual_type=X54run_type(r139result_type(C));
  1868. /*[IF*/
  1869. if(X54is_reference(_actual_type)){
  1870. /*[IF*/
  1871. if(X54is_reference(a1)){
  1872. X54mapping_cast(a1);
  1873. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1874. T3 b1='\50';
  1875. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1876. }/*]*/
  1877. /*]*/
  1878. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  1879. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  1880. }/*]*/
  1881. /*]*/
  1882. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1883. T3 b1='\51';
  1884. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1885. }/*]*/
  1886. /*]*/
  1887. }
  1888. else{
  1889. X54to_expanded(_actual_type);
  1890. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1891. T3 b1='\50';
  1892. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1893. }/*]*/
  1894. /*]*/
  1895. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  1896. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  1897. }/*]*/
  1898. /*]*/
  1899. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1900. T3 b1='\51';
  1901. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1902. }/*]*/
  1903. /*]*/
  1904. }
  1905. /*FI]*/
  1906. }
  1907. else{
  1908. /*[IF*/
  1909. if(X54is_reference(a1)){
  1910. X54to_reference(_actual_type);
  1911. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1912. T3 b1='\50';
  1913. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1914. }/*]*/
  1915. /*]*/
  1916. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  1917. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  1918. }/*]*/
  1919. /*]*/
  1920. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1921. T3 b1='\51';
  1922. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1923. }/*]*/
  1924. /*]*/
  1925. }
  1926. else{
  1927. /*[IF*/
  1928. if(X54need_c_struct(a1)){
  1929. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1930. T3 b1='\46';
  1931. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1932. }/*]*/
  1933. /*]*/
  1934. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1935. T3 b1='\50';
  1936. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1937. }/*]*/
  1938. /*]*/
  1939. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  1940. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  1941. }/*]*/
  1942. /*]*/
  1943. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1944. T3 b1='\51';
  1945. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1946. }/*]*/
  1947. /*]*/
  1948. }
  1949. else{
  1950. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  1951. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  1952. }/*]*/
  1953. /*]*/
  1954. }
  1955. /*FI]*/
  1956. }
  1957. /*FI]*/
  1958. }
  1959. /*FI]*/
  1960. /*[IF*/
  1961. if(_flag){
  1962. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  1963. T3 b1='\51';
  1964. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1965. }/*]*/
  1966. /*]*/
  1967. }
  1968. /*FI]*/
  1969. }
  1970.  
  1971.  
  1972. void r139run_feature_match(T139* C){
  1973. r139run_feature_has_result(C);
  1974. /*[IF*/
  1975. if((X51arg_count((C)->_run_feature/*8*/))>(0)){
  1976. r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1977. r21add_position(X51start_position((C)->_run_feature/*8*/));
  1978. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms141_50512);
  1979. r21fatal_error((T21*)(oBC12eh),b1);
  1980. }/*]*/
  1981. }
  1982. /*FI]*/
  1983. }
  1984. /*No:CALL_PREFIX_FREEOP.arguments*/
  1985.  
  1986.  
  1987. T0* r139runnable_expression(T0* a1,T0* a2){
  1988. T0* R=NULL;
  1989. R=X56to_runnable(a1,a2);
  1990. /*[IF*/
  1991. if((R)==((void*)(NULL))){
  1992. r21add_position(X56start_position(a1));
  1993. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  1994. r21fatal_error((T21*)(oBC12eh),b1);
  1995. }/*]*/
  1996. }
  1997. /*FI]*/
  1998. return R;
  1999. }
  2000.  
  2001.  
  2002. T6 r139can_be_dropped(T139* C){
  2003. T6 R=0;
  2004. /*[IF*/
  2005. if(X56can_be_dropped((C)->_target/*4*/)){
  2006. R=X51can_be_dropped((C)->_run_feature/*8*/);
  2007. }
  2008. /*FI]*/
  2009. return R;
  2010. }
  2011.  
  2012.  
  2013. void r139c_declare_for_old(T139* C){
  2014. X56c_declare_for_old((C)->_target/*4*/);
  2015. /*[IF*/
  2016. /*AF*//*AE*/
  2017. /*FI]*/
  2018. }
  2019. /*No:CALL_PREFIX_FREEOP.dca_inline_argument*/
  2020. /*No:CALL_PREFIX_FREEOP.compile_to_c*/
  2021. /*No:CALL_PREFIX_FREEOP.isa_dca_inline_argument*/
  2022.  
  2023.  
  2024. void r139run_feature_has_result(T139* C){
  2025. /*[IF*/
  2026. if((X51result_type((C)->_run_feature/*8*/))==((void*)(NULL))){
  2027. r21add_position(X51start_position((C)->_run_feature/*8*/));
  2028. r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  2029. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  2030. r21fatal_error((T21*)(oBC12eh),b1);
  2031. }/*]*/
  2032. }
  2033. /*FI]*/
  2034. }
  2035.  
  2036.  
  2037. T0* r139run_feature_for(T139* C,T0* a1,T0* a2){
  2038. T0* R=NULL;
  2039. T0* _rc=NULL;
  2040. _rc=X54run_class(X56result_type(a1));
  2041. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  2042. return R;
  2043. }
  2044. /*No:CALL_PREFIX_FREEOP.target*/
  2045.  
  2046.  
  2047. void r139error(T0* a1,T0* a2){
  2048. r21add_position(a1);
  2049. r21error((T21*)(oBC12eh),a2);
  2050. }
  2051.  
  2052.  
  2053. void r139make(T139* C,T0* a1,T0* a2){
  2054. C->_target=a1;
  2055. C->_feature_name=a2;
  2056. }
  2057. /*No:CALL_PREFIX_FREEOP.is_current*/
  2058.  
  2059.  
  2060. void r139mapping_c_arg(T139* C,T0* a1){
  2061. T0* _actual_type=NULL;
  2062. _actual_type=X54run_type(r139result_type(C));
  2063. /*[IF*/
  2064. if(X54is_reference(_actual_type)){
  2065. /*[IF*/
  2066. if(X54is_reference(a1)){
  2067. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  2068. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  2069. }/*]*/
  2070. /*]*/
  2071. }
  2072. else{
  2073. X54to_expanded(_actual_type);
  2074. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2075. T3 b1='\50';
  2076. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2077. }/*]*/
  2078. /*]*/
  2079. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  2080. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  2081. }/*]*/
  2082. /*]*/
  2083. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2084. T3 b1='\51';
  2085. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2086. }/*]*/
  2087. /*]*/
  2088. }
  2089. /*FI]*/
  2090. }
  2091. else{
  2092. /*[IF*/
  2093. if(X54is_reference(a1)){
  2094. X54to_reference(_actual_type);
  2095. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2096. T3 b1='\50';
  2097. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2098. }/*]*/
  2099. /*]*/
  2100. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  2101. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  2102. }/*]*/
  2103. /*]*/
  2104. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2105. T3 b1='\51';
  2106. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2107. }/*]*/
  2108. /*]*/
  2109. }
  2110. else{
  2111. /*[IF*/
  2112. if(X54need_c_struct(a1)){
  2113. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2114. T3 b1='\46';
  2115. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2116. }/*]*/
  2117. /*]*/
  2118. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2119. T3 b1='\50';
  2120. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2121. }/*]*/
  2122. /*]*/
  2123. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  2124. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  2125. }/*]*/
  2126. /*]*/
  2127. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2128. T3 b1='\51';
  2129. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2130. }/*]*/
  2131. /*]*/
  2132. }
  2133. else{
  2134. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
  2135. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  2136. }/*]*/
  2137. /*]*/
  2138. }
  2139. /*FI]*/
  2140. }
  2141. /*FI]*/
  2142. }
  2143. /*FI]*/
  2144. }
  2145. /*No:CALL_PREFIX_FREEOP.is_void*/
  2146.  
  2147.  
  2148. void r139afd_check(T139* C){
  2149. T0* _running=NULL;
  2150. T0* _rc=NULL;
  2151. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  2152. _running=(((T24*)_rc))->_running/*12*/;
  2153. /*[IF*/
  2154. if((_running)==((void*)(NULL))){
  2155. r21add_position(X56start_position((C)->_target/*4*/));
  2156. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  2157. r7append((T7*)(oBC21explanation),b1);
  2158. }/*]*/
  2159. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  2160. r7append((T7*)(oBC21explanation),b1);
  2161. }/*]*/
  2162. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  2163. r7append((T7*)(oBC21explanation),b1);
  2164. }/*]*/
  2165. r21print_as_warning((T21*)(oBC12eh));
  2166. r24set_at_run_time(((T24*)_rc));
  2167. }
  2168.  else if((r328count(((T328*)_running)))>(1)){
  2169. r331update((C)->_target/*4*/,(C)->_run_feature/*8*/);
  2170. }
  2171. /*FI]*/
  2172. X56afd_check((C)->_target/*4*/);
  2173. /*[IF*/
  2174. /*AF*//*AE*/
  2175. /*FI]*/
  2176. }
  2177. /*No:E_STRIP.static_value*/
  2178. /*No:E_STRIP.is_static*/
  2179. /*No:E_STRIP.is_manifest_string*/
  2180.  
  2181.  
  2182. T2 r147array_count(T147* C,T0* a1){
  2183. T2 R=0;
  2184. /*[IF*/
  2185. if((a1)!=((void*)(NULL))){
  2186. R=r361count(((T361*)a1));
  2187. }
  2188. /*FI]*/
  2189. /*[IF*/
  2190. if(((C)->_list/*8*/)!=((void*)(NULL))){
  2191. R=(R)-(r85count((T85*)((C)->_list/*8*/)));
  2192. }
  2193. /*FI]*/
  2194. return R;
  2195. }
  2196. /*No:E_STRIP.start_position*/
  2197. /*No:E_STRIP.c_simple*/
  2198.  
  2199.  
  2200. T0* r147add_comment(T147* C,T0* a1){
  2201. T0* R=NULL;
  2202. /*[IF*/
  2203. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  2204. R=(T0*)C;
  2205. }
  2206. else{
  2207. {T230*n=malloc(sizeof(*n));
  2208. *n=M230;
  2209. r230make(n,(T0*)C,a1);
  2210. R=(T0*)n;
  2211. }
  2212. }
  2213. /*FI]*/
  2214. return R;
  2215. }
  2216.  
  2217.  
  2218. T2 r147to_integer(T147* C){
  2219. T2 R=0;
  2220. r147error((C)->_start_position/*4*/,((T0*)ms13_45846));
  2221. return R;
  2222. }
  2223. /*No:E_STRIP.use_current*/
  2224.  
  2225.  
  2226. T0* r147to_runnable(T147* C,T0* a1){
  2227. T0* R=NULL;
  2228. /*[IF*/
  2229. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  2230. C->_current_type=a1;
  2231. /*[IRF3.3set_strip_used*/((((T24*)((T24*)(X54run_class((C)->_current_type/*12*/)))))->_strip_used)=(1);
  2232. /*]*/
  2233. R=(T0*)C;
  2234. }
  2235. else{
  2236. {T147*n=malloc(sizeof(*n));
  2237. *n=M147;
  2238. r147make(n,(C)->_start_position/*4*/,(C)->_list/*8*/);
  2239. R=(T0*)n;
  2240. }
  2241. R=r147to_runnable(((T147*)R),a1);
  2242. }
  2243. /*FI]*/
  2244. return R;
  2245. }
  2246. /*No:E_STRIP.compile_to_c_old*/
  2247. /*No:E_STRIP.is_pre_computable*/
  2248. /*No:E_STRIP.collect_c_tmp*/
  2249. /*No:E_STRIP.fz_iinaiv*/
  2250. int fBC147result_type=0;
  2251. T0*oBC147result_type=NULL;
  2252.  
  2253.  
  2254. T0* r147result_type(void){
  2255. if(fBC147result_type==0){
  2256. fBC147result_type=1;
  2257. {T260*n=malloc(sizeof(*n));
  2258. *n=M260;
  2259. r260make(n,NULL,r147type_any());
  2260. oBC147result_type=(T0*)n;
  2261. }
  2262. oBC147result_type=r260to_runnable(((T260*)oBC147result_type),r147type_any());
  2263. r24set_at_run_time((T24*)(r260run_class(((T260*)oBC147result_type))));
  2264. r260load_basic_features(((T260*)oBC147result_type));
  2265. r341register(oBC147result_type);
  2266. }
  2267. return oBC147result_type;}
  2268. /*No:E_STRIP.list*/
  2269. /*No:E_STRIP.is_result*/
  2270. /*No:E_STRIP.mapping_c_target*/
  2271. /*No:E_STRIP.can_be_dropped*/
  2272. /*No:E_STRIP.c_declare_for_old*/
  2273.  
  2274.  
  2275. T0* r147type_any(void){
  2276. if(fBC12type_any==0){
  2277. fBC12type_any=1;
  2278. {T259*n=malloc(sizeof(*n));
  2279. *n=M259;
  2280. r259make(n,NULL);
  2281. oBC12type_any=(T0*)n;
  2282. }
  2283. }
  2284. return oBC12type_any;}
  2285. /*No:E_STRIP.dca_inline_argument*/
  2286.  
  2287.  
  2288. void r147compile_to_c(T147* C){
  2289. T0* _ct=NULL;
  2290. T2 _i=0;
  2291. T0* _rf2=NULL;
  2292. T0* _wa=NULL;
  2293. r341c_call(r147result_type());
  2294. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2295. T3 b1='\50';
  2296. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2297. }/*]*/
  2298. /*]*/
  2299. _ct=(C)->_current_type/*12*/;
  2300. _wa=r24writable_attributes((T24*)(X54run_class(_ct)));
  2301. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),r147array_count(C,_wa));
  2302. /*]*/
  2303. /*[IF*/
  2304. if((_wa)!=((void*)(NULL))){
  2305. _i=(((T361*)_wa))->_upper/*12*/;
  2306. while (!((_i)==(0))) {
  2307. _rf2=r361item(((T361*)_wa),_i);
  2308. /*[IF*/
  2309. if((((C)->_list/*8*/)==((void*)(NULL)))||(!(r85has((T85*)((C)->_list/*8*/),(((T356*)_rf2))->_name/*16*/)))){
  2310. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2311. T3 b1='\54';
  2312. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2313. }/*]*/
  2314. /*]*/
  2315. X54to_reference((((T356*)_rf2))->_result_type/*28*/);
  2316. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2317. T3 b1='\50';
  2318. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2319. }/*]*/
  2320. /*]*/
  2321. r25print_current((T25*)(oBC12cpp));
  2322. /*[IF*/
  2323. if(X54is_expanded((C)->_current_type/*12*/)){
  2324. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2325. T3 b1='\56';
  2326. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2327. }/*]*/
  2328. /*]*/
  2329. }
  2330. else{
  2331. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms147_220));
  2332. /*]*/
  2333. }
  2334. /*FI]*/
  2335. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2336. T3 b1='\137';
  2337. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2338. }/*]*/
  2339. /*]*/
  2340. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string((((T356*)_rf2))->_name/*16*/));
  2341. /*]*/
  2342. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2343. T3 b1='\51';
  2344. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2345. }/*]*/
  2346. /*]*/
  2347. }
  2348. /*FI]*/
  2349. _i=(_i)-(1);
  2350. }
  2351. }
  2352. /*FI]*/
  2353. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2354. T3 b1='\51';
  2355. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2356. }/*]*/
  2357. /*]*/
  2358. }
  2359. /*No:E_STRIP.isa_dca_inline_argument*/
  2360. /*No:E_STRIP.current_type*/
  2361.  
  2362.  
  2363. void r147error(T0* a1,T0* a2){
  2364. r21add_position(a1);
  2365. r21error((T21*)(oBC12eh),a2);
  2366. }
  2367.  
  2368.  
  2369. void r147make(T147* C,T0* a1,T0* a2){
  2370. C->_start_position=a1;
  2371. C->_list=a2;
  2372. }
  2373. /*No:E_STRIP.is_current*/
  2374. /*No:E_STRIP.mapping_c_arg*/
  2375. /*No:E_STRIP.is_void*/
  2376. /*No:E_STRIP.afd_check*/
  2377. /*No:ONCE_RESULT.static_value*/
  2378. /*No:ONCE_RESULT.is_static*/
  2379. /*No:ONCE_RESULT.is_manifest_string*/
  2380. /*No:ONCE_RESULT.start_position*/
  2381. /*No:ONCE_RESULT.c_simple*/
  2382.  
  2383.  
  2384. T0* r155add_comment(T155* C,T0* a1){
  2385. T0* R=NULL;
  2386. /*[IF*/
  2387. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  2388. R=(T0*)C;
  2389. }
  2390. else{
  2391. {T230*n=malloc(sizeof(*n));
  2392. *n=M230;
  2393. r230make(n,(T0*)C,a1);
  2394. R=(T0*)n;
  2395. }
  2396. }
  2397. /*FI]*/
  2398. return R;
  2399. }
  2400.  
  2401.  
  2402. T2 r155to_integer(T155* C){
  2403. T2 R=0;
  2404. r155error((C)->_start_position/*4*/,((T0*)ms13_45846));
  2405. return R;
  2406. }
  2407. /*No:ONCE_RESULT.use_current*/
  2408.  
  2409.  
  2410. T0* r155to_runnable(T155* C,T0* a1){
  2411. T0* R=NULL;
  2412. T0* _rt2=NULL;
  2413. T0* _rt1=NULL;
  2414. T0* _rf6=NULL;
  2415. R=(T0*)C;
  2416. _rf6=r22top_rf((T22*)(oBC12small_eiffel));
  2417. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  2418. case 50: 
  2419. break;
  2420. default:
  2421. _rf6=NULL;
  2422. };/*[IF*/
  2423. if(((C)->_run_feature_6/*8*/)==((void*)(NULL))){
  2424. C->_run_feature_6=_rf6;
  2425. }
  2426. else{
  2427. _rt1=X54run_type((((T50*)_rf6))->_result_type/*40*/);
  2428. _rt2=X54run_type(((T50*)((C)->_run_feature_6/*8*/))->_result_type/*40*/);
  2429. /*[IF*/
  2430. if((X54run_time_mark(_rt1))!=((void*)(X54run_time_mark(_rt2)))){
  2431. r21add_position(X54start_position(_rt1));
  2432. r21add_position(X54start_position(_rt2));
  2433. r50fe_vffd7((T50*)((C)->_run_feature_6/*8*/));
  2434. }
  2435. /*FI]*/
  2436. }
  2437. /*FI]*/
  2438. return R;
  2439. }
  2440. /*No:ONCE_RESULT.compile_to_c_old*/
  2441. /*No:ONCE_RESULT.is_pre_computable*/
  2442. /*No:ONCE_RESULT.collect_c_tmp*/
  2443. /*No:ONCE_RESULT.fz_iinaiv*/
  2444. /*No:ONCE_RESULT.result_type*/
  2445. /*No:ONCE_RESULT.is_result*/
  2446.  
  2447.  
  2448. void r155mapping_c_target(T155* C,T0* a1){
  2449. T0* _rt=NULL;
  2450. T6 _flag=0;
  2451. _flag=r25call_invariant_start(a1);
  2452. _rt=X54run_type(/*(IRF4.6result_type*/(((T50*)((C)->_run_feature_6/*8*/)))->_result_type/*40*//*)*/);
  2453. /*[IF*/
  2454. if(X54is_reference(_rt)){
  2455. /*[IF*/
  2456. if(X54is_reference(a1)){
  2457. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_510));
  2458. /*]*/
  2459. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54id(a1));
  2460. /*]*/
  2461. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_172));
  2462. /*]*/
  2463. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2464. /*]*/
  2465. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2466. T3 b1='\51';
  2467. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2468. }/*]*/
  2469. /*]*/
  2470. }
  2471. else{
  2472. X54to_expanded(_rt);
  2473. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2474. T3 b1='\50';
  2475. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2476. }/*]*/
  2477. /*]*/
  2478. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2479. /*]*/
  2480. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2481. T3 b1='\51';
  2482. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2483. }/*]*/
  2484. /*]*/
  2485. }
  2486. /*FI]*/
  2487. }
  2488. else{
  2489. /*[IF*/
  2490. if(X54is_reference(a1)){
  2491. X54to_reference(_rt);
  2492. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2493. T3 b1='\50';
  2494. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2495. }/*]*/
  2496. /*]*/
  2497. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2498. /*]*/
  2499. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2500. T3 b1='\51';
  2501. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2502. }/*]*/
  2503. /*]*/
  2504. }
  2505. else{
  2506. /*[IF*/
  2507. if(X54need_c_struct(_rt)){
  2508. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2509. T3 b1='\46';
  2510. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2511. }/*]*/
  2512. /*]*/
  2513. }
  2514. /*FI]*/
  2515. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2516. /*]*/
  2517. }
  2518. /*FI]*/
  2519. }
  2520. /*FI]*/
  2521. /*[IF*/
  2522. if(_flag){
  2523. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  2524. T3 b1='\51';
  2525. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2526. }/*]*/
  2527. /*]*/
  2528. }
  2529. /*FI]*/
  2530. }
  2531. /*No:ONCE_RESULT.can_be_dropped*/
  2532. /*No:ONCE_RESULT.c_declare_for_old*/
  2533. /*No:ONCE_RESULT.dca_inline_argument*/
  2534. /*No:ONCE_RESULT.fz_b7*/
  2535. /*No:ONCE_RESULT.compile_to_c*/
  2536. /*No:ONCE_RESULT.fz_b8*/
  2537. /*No:ONCE_RESULT.isa_dca_inline_argument*/
  2538.  
  2539.  
  2540. void r155error(T0* a1,T0* a2){
  2541. r21add_position(a1);
  2542. r21error((T21*)(oBC12eh),a2);
  2543. }
  2544. /*No:ONCE_RESULT.make*/
  2545. /*No:ONCE_RESULT.is_current*/
  2546.  
  2547.  
  2548. void r155mapping_c_arg(T155* C,T0* a1){
  2549. T0* _rt=NULL;
  2550. _rt=X54run_type(/*(IRF4.6result_type*/(((T50*)((C)->_run_feature_6/*8*/)))->_result_type/*40*//*)*/);
  2551. /*[IF*/
  2552. if(X54is_reference(_rt)){
  2553. /*[IF*/
  2554. if(X54is_reference(a1)){
  2555. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2556. /*]*/
  2557. }
  2558. else{
  2559. X54to_expanded(_rt);
  2560. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2561. T3 b1='\50';
  2562. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2563. }/*]*/
  2564. /*]*/
  2565. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2566. /*]*/
  2567. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2568. T3 b1='\51';
  2569. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2570. }/*]*/
  2571. /*]*/
  2572. }
  2573. /*FI]*/
  2574. }
  2575. else{
  2576. /*[IF*/
  2577. if(X54is_reference(a1)){
  2578. X54to_reference(_rt);
  2579. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2580. T3 b1='\50';
  2581. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2582. }/*]*/
  2583. /*]*/
  2584. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2585. /*]*/
  2586. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2587. T3 b1='\51';
  2588. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2589. }/*]*/
  2590. /*]*/
  2591. }
  2592. else{
  2593. /*[IF*/
  2594. if(X54need_c_struct(_rt)){
  2595. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2596. T3 b1='\46';
  2597. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2598. }/*]*/
  2599. /*]*/
  2600. }
  2601. /*FI]*/
  2602. /*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
  2603. /*]*/
  2604. }
  2605. /*FI]*/
  2606. }
  2607. /*FI]*/
  2608. }
  2609. /*No:ONCE_RESULT.is_void*/
  2610. /*No:ONCE_RESULT.afd_check*/
  2611. /*No:ONCE_RESULT.run_feature_6*/
  2612. /*No:INDEX_CLAUSE.tag*/
  2613. /*No:INDEX_CLAUSE.without_tag*/
  2614.  
  2615.  
  2616. void r320add_last(T320* C,T0* a1){
  2617. /*[IF*/
  2618. if(((C)->_list/*4*/)==((void*)(NULL))){
  2619. {T151*n=malloc(sizeof(*n));
  2620. *n=M151;
  2621. r151with_capacity(n,4);
  2622. C->_list=(T0*)n;
  2623. }
  2624. }
  2625. /*FI]*/
  2626. X151add_last((C)->_list/*4*/,a1);
  2627. }
  2628. /*No:INDEX_CLAUSE.with_tag*/
  2629. /*No:INDEX_CLAUSE.list*/
  2630. /*No:FORMAL_GENERIC_ARG.start_position*/
  2631.  
  2632.  
  2633. void r278make(T278* C,T0* a1,T0* a2){
  2634. C->_name=a1;
  2635. C->_constraint=a2;
  2636. }
  2637. /*No:FORMAL_GENERIC_ARG.constraint*/
  2638. /*No:FORMAL_GENERIC_ARG.name*/
  2639.  
  2640.